<?php
/**
 * 
 * Enter description here ...
 * @author Rosanna Paberli Jimenez Rosario
 *
 */
class CompaniaDocumentosModel extends Model
{
	
	private $_nameTable = "SC_EmpresaDocumentos";
	
	
	public function __construct()
	{
		parent::Model();
	}
	
	
	public function loadRegistros()
	{
		
		$query = $this->db->get($this->_nameTable);
		return $this->_getArrayFromQueryResult($query);
		
	}
	
	/**
	 * 
	 * Obtiene todos los registros.
	 * @param unknown_type $resurt
	 */

	private function _getArrayFromQueryResult($resurt)
	{
		if($resurt->num_rows() == 0){
			return false;
		}
		
		$registros = array();
		
		foreach($resurt->result() as $record){
			$registros[] = new EmpresaDocumentosTable($record);
		}
		
		return $registros;
	}
	
	/**
	 * buscar registros por id
	 * @param integer $id
	*/
    public function loadRegistrosById($id)
	{
		
		$query = $this->db->get_where($this->_nameTable, array('id_empresa' => $id));
		
		if($query->num_rows() == 0)
			return false;
		 
			return new EmpresaDocumentosTable($query->row());
		
	}

	/**
	 *  Obtiene los valores enum de una tabla
     * y los combierto en un array
     * para manejarlos como una lista desplegable.
	 * recibe como parametro el nombre de la tabla.
	 * @param unknown_type $nombreCampo
	 */
   public function getValueEnums($nombreCampo)
   {

   	   $query = mysql_query("SHOW COLUMNS FROM $this->_nameTable LIKE '$nombreCampo'");
   	   $result = mysql_fetch_array($query);
   	  
   	   $resultado =  explode("','",preg_replace("/(enum|set)('(.+?)')/", "2",$result[1]));
   	   
   	   $returnFirma =  str_replace(array("enum('", "')"), array("", ""), $resultado); 
   	   
   	   return $returnFirma;
   	   
   }
   
   
    /**
     * Agregar un registro
     * @param  $data
    */
	public function agregar($data)
	{
		
		if($this->db->insert($this->_nameTable, $data)){
			
			return true;
			
		}
		
			return false;
		
	}
	
	/**
	 * 
	 * Editar un registro
	 * @param  $data
	 * @param integer $id
	 */
	public function editar($data, $id)
	{
		if($this->db->update($this->_nameTable, $data, array("id_empresa" => $id))){
			
			return true;
		}
			return false;
	}
	
	
	
	/**
	 * Eliminar un registro.
	 * @param integer $id
	 */
	public function eliminar($id)
	{
		if($this->db->delete($this->_nameTable, array("id_empresa" => $id))){
			
			return true;
		}
		
		    return false;
	}
	
	
}

class EmpresaDocumentosTable
{
	
	/**
	 * 
	 * Enter description here ...
	 * @var int
	 */
	private $_idCompaniaDocumentos;
	/**
	 * 
	 * Enter description here ...
	 * @var int
	 */
	private $_id_empresa;
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_nombre_empresa;
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_direccion;
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_calle;
	/**
	 * 
	 * Enter description here ...
	 * @var int
	 */
	private $_no_calle;
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_sector;
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_provincia;
	/**
	 * 
	 * Enter description here ...
	 * @var double
	 */
	private $_capital;
	/**
	 * 
	 * Enter description here ...
	 * @var double
	 */
	private $_cuotas_cantidad;
	/**
	 * 
	 * Enter description here ...
	 * @var double
	 */
	private $_valor_cuotas;
	/**
	 * 
	 * Enter description here ...
	 * @var int
	 */
	private $_cantidad_socios;
	/**
	 * 
	 * Enter description here ...
	 * @var date
	 */
	private $_fecha;
	/**
	 * 
	 * Enter description here ...
	 * @var int
	 */
	private $_id_tipo_objeto;
	
	/**
	 * 
	 * Enter description here ...
	 * @var string
	 */
	private $_tipo_firma;
	
	/**
	 * 
	 * Enter description here ...
	 * @var $_email
	 */
	private $_email;
	
	/**
	 * 
	 * Enter description here ...
	 * @var $_telefono
	 */
	private $_telefono;
	
	/**
	 * 
	 * Enter description here ...
	 * @var $_comentario
	 */
	private $_comentario;
	
	/**
	 * 
	 * Enter description here ...
	 * @param  $objeto
	 */
	public function __construct($objeto)
	{
		
		$this->_idCompaniaDocumentos = $objeto->id_empresa_documento;
		$this->_id_empresa  		 = $objeto->id_empresa;
		$this->_nombre_empresa       = $objeto->nombre_empresa;
		$this->_direccion            = $objeto->direccion;
		$this->_calle                = $objeto->calle;
		$this->_sector               = $objeto->sector;
		$this->_no_calle			 = $objeto->no_calle;
		$this->_provincia            = $objeto->provincia;
		$this->_capital              = $objeto->capital;
		$this->_cuotas_cantidad      = $objeto->cuotas_cantidad;
		$this->_valor_cuotas         = $objeto->valor_cuotas;
		$this->_cantidad_socios      = $objeto->cantidad_socio;
		$this->_fecha                = $objeto->fecha;
		$this->_id_tipo_objeto       = $objeto->id_tipo_objeto;
		$this->_tipo_firma           = $objeto->tipo_firma;
		$this->_email                = $objeto->email;
		$this->_telefono             = $objeto->telefono;
		$this->_comentario           = $objeto->comentario;

		
	}
	
	
	/**
	 * @return the $_comentario
	 */
	public function getComentario() {
		return $this->_comentario;
	}

	/**
	 * @param $_comentario $_comentario
	 */
	public function setComentario($_comentario) {
		$this->_comentario = $_comentario;
	}

	/**
	 * @return the $_email
	 */
	public function getEmail() {
		return $this->_email;
	}

	/**
	 * @return the $_telefono
	 */
	public function getTelefono() {
		return $this->_telefono;
	}

	/**
	 * @param $_email $_email
	 */
	public function setEmail($_email) {
		$this->_email = $_email;
	}

	/**
	 * @param $_telefono $_telefono
	 */
	public function setTelefono($_telefono) {
		$this->_telefono = $_telefono;
	}

	/**
	 * @return the $_tipo_firma
	 */
	public function getTipo_firma() {
		return $this->_tipo_firma;
	}

	/**
	 * @param string $_tipo_firma
	 */
	public function setTipo_firma($_tipo_firma) {
		$this->_tipo_firma = $_tipo_firma;
	}

	/**
	 * @return the $_idCompaniaDocumentos
	 */
	public function getIdCompaniaDocumentos() {
		return $this->_idCompaniaDocumentos;
	}

	/**
	 * @return the $_id_empresa
	 */
	public function getId_empresa() {
		return $this->_id_empresa;
	}

	/**
	 * @return the $_nombre_empresa
	 */
	public function getNombre_empresa() {
		return $this->_nombre_empresa;
	}

	/**
	 * @return the $_direccion
	 */
	public function getDireccion() {
		return $this->_direccion;
	}

	/**
	 * @return the $_calle
	 */
	public function getCalle() {
		return $this->_calle;
	}

	/**
	 * @return the $_no_calle
	 */
	public function getNo_calle() {
		return $this->_no_calle;
	}

	/**
	 * @return the $_sector
	 */
	public function getSector() {
		return $this->_sector;
	}

	/**
	 * @return the $_provincia
	 */
	public function getProvincia() {
		return $this->_provincia;
	}

	/**
	 * @return the $_capital
	 */
	public function getCapital() {
		return $this->_capital;
	}

	/**
	 * @return the $_cuotas_cantidad
	 */
	public function getCuotas_cantidad() {
		return $this->_cuotas_cantidad;
	}

	/**
	 * @return the $_valor_cuotas
	 */
	public function getValor_cuotas() {
		return $this->_valor_cuotas;
	}

	/**
	 * @return the $_cantidad_socios
	 */
	public function getCantidad_socios() {
		return $this->_cantidad_socios;
	}

	/**
	 * @return the $_fecha
	 */
	public function getFecha() {
		return $this->_fecha;
	}

	/**
	 * @return the $_id_tipo_objeto
	 */
	public function getId_tipo_objeto() {
		return $this->_id_tipo_objeto;
	}

	/**
	 * @param field_type $_idCompaniaDocumentos
	 */
	public function setIdCompaniaDocumentos($_idCompaniaDocumentos) {
		$this->_idCompaniaDocumentos = $_idCompaniaDocumentos;
	}

	/**
	 * @param field_type $_id_empresa
	 */
	public function setId_empresa($_id_empresa) {
		$this->_id_empresa = $_id_empresa;
	}

	/**
	 * @param field_type $_nombre_empresa
	 */
	public function setNombre_empresa($_nombre_empresa) {
		$this->_nombre_empresa = $_nombre_empresa;
	}

	/**
	 * @param field_type $_direccion
	 */
	public function setDireccion($_direccion) {
		$this->_direccion = $_direccion;
	}

	/**
	 * @param field_type $_calle
	 */
	public function setCalle($_calle) {
		$this->_calle = $_calle;
	}

	/**
	 * @param field_type $_no_calle
	 */
	public function setNo_calle($_no_calle) {
		$this->_no_calle = $_no_calle;
	}

	/**
	 * @param field_type $_sector
	 */
	public function setSector($_sector) {
		$this->_sector = $_sector;
	}

	/**
	 * @param field_type $_provincia
	 */
	public function setProvincia($_provincia) {
		$this->_provincia = $_provincia;
	}

	/**
	 * @param field_type $_capital
	 */
	public function setCapital($_capital) {
		$this->_capital = $_capital;
	}

	/**
	 * @param field_type $_cuotas_cantidad
	 */
	public function setCuotas_cantidad($_cuotas_cantidad) {
		$this->_cuotas_cantidad = $_cuotas_cantidad;
	}

	/**
	 * @param field_type $_valor_cuotas
	 */
	public function setValor_cuotas($_valor_cuotas) {
		$this->_valor_cuotas = $_valor_cuotas;
	}

	/**
	 * @param field_type $_cantidad_socios
	 */
	public function setCantidad_socios($_cantidad_socios) {
		$this->_cantidad_socios = $_cantidad_socios;
	}

	/**
	 * @param field_type $_fecha
	 */
	public function setFecha($_fecha) {
		$this->_fecha = $_fecha;
	}

	/**
	 * @param field_type $_id_tipo_objeto
	 */
	public function setId_tipo_objeto($_id_tipo_objeto) {
		$this->_id_tipo_objeto = $_id_tipo_objeto;
	}
	
	
	
}